def test(num):
    # py传参是引用传递，也就是传递的是地址值
    print("z在函数内部 %d 对应的内存地址是 %d" % (num, id(num)))
    # 定义字符串变量
    result = "hello"
    print("内存地址是 %d" % id(result))
    return result


a = 10

print("a 变量保存数据的内存地址是 %d " % id(a))

# 调用函数

result = test(a)
# 此时地址和函数内部的地址一样的
print(id(result))

# 列表的可变性
stu = ["1", "2"]
print(id(stu))

stu.append("3")
print(id(stu))

stu.remove("1")
print(id(stu))

# 字典的可变性
per = {"age": 18}
print(id(per))
per["name"] = "czk"
print(id(per))

# 字典对键的约束->键值必须是不可变类型

a = {1: "1"}
a[(1,)] = "元祖"
print(a)
# 会报错，列表示可变类型
a[[1, 20]] = "列表"

